package com.zyl.basis.state;

import java.util.concurrent.TimeUnit;

/**
 * @author zhaoyl
 * @date 2024/5/27 15:23
 * @description 说明
 * 测试停止线程
 * 1.建议线程正常停止---->利用次数，不建议死循环
 * 2.建议使用标志位------>设置一个标志位
 * 3.不建议使用stop或者destroy等过时方法
 */
public class TestStop implements Runnable{
    //1.设置一个标识位
   private boolean flag =true;
    @Override
    public void run() {
        int i = 0;
        while (flag){
            System.out.println("running....Thread-"+i++);
        }
    }
    //2.设置一个公开的方法停止线程，转换标志位
    public void stop(){
        this.flag=false;
    }
    public static void main(String[] args){
        TestStop stop = new TestStop();
        new Thread(stop).start();
        for (int i=0;i<500;i++){
            System.out.println("main->"+i);
            if (i==100){
                stop.stop();
                System.out.println("TestStop线程停止了");
            }

        }
    }
}
